/**
 *
 * ━━━━━━神兽出没━━━━━━
 * 　　　┏┓　　　┏┓
 * 　　┏┛┻━━━┛┻┓
 * 　　┃　　　　　　　┃
 * 　　┃　　　━　　　┃
 * 　　┃　┳┛　┗┳　┃
 * 　　┃　　　　　　　┃
 * 　　┃　　　┻　　　┃
 * 　　┃　　　　　　　┃
 * 　　┗━┓　　　┏━┛Code is far away from bug with the animal protecting
 * 　　　　┃　　　┃    神兽保佑,代码无bug
 * 　　　　┃　　　┃
 * 　　　　┃　　　┗━━━┓
 * 　　　　┃　　　　　　　┣┓
 * 　　　　┃　　　　　　　┏┛
 * 　　　　┗┓┓┏━┳┓┏┛
 * 　　　　　┃┫┫　┃┫┫
 * 　　　　　┗┻┛　┗┻┛
 *
 * ━━━━━━感觉萌萌哒━━━━━━
 */

#import "PywSdk+login.h"
#import <objc/runtime.h>
#import "PywNavgationController.h"
#import "PywPlatformMain.h"
#import "PywMasonry.h"
#import "ApiClientConst.h"
#import "PywCPNotifications.h"
#import "PywMBProgressHUD+Pyw.h"
#import "PywInitApi.h"
#import "PywLoginView.h"
#import "PywLogoutManger.h"
#import "PywSetRoleInfoManager.h"

// 以下参数需要进行urlencode处理
NSString *const key_Roleid = @"roleid";
NSString *const key_RoleName = @"roleName";
NSString *const key_RoleLevel = @"roleLevel";
NSString *const key_ServerArea = @"serverArea";
NSString *const key_ServerAreaName = @"serverAreaName";

@interface PywSdk()
@property (nonatomic,strong) PywInitApi *mloginInitApi;
@end

@implementation PywSdk (login)

static char KeyInitApi = 'keyInitApi';

- (BOOL)isLogined {
    return [PywPlatformMain sharedPlatformMain].logined;
}

- (void)login {
    // 判断是否已经初始化
    if ([PywPlatformMain sharedPlatformMain].initialized) {
        [[[PywLoginView alloc] init] addLogin2keyWindow];
    }else {
        self.mloginInitApi = [PywInitApi manager];
        [self.mloginInitApi requestInitWithSuccess:^(NSString *status, id anyObjct) {
            dispatch_async(dispatch_get_main_queue(), ^{
                [[[PywLoginView alloc] init] addLogin2keyWindow];
            });
        } fail:^(NSError *error) {
            
        }];
    }
}

- (void)sdk_SetRoleInfo:(NSDictionary *)roleInfo
{
    [[PywSetRoleInfoManager manager] uploadRoleInfo:roleInfo];
}

- (void)logout {
    // 判断是否已经初始化
    if ([PywPlatformMain sharedPlatformMain].initialized == NO) {
        return;
    }
    [[PywLogoutManger manger] logout:^{
        [PywMBProgressHUD showSuccess:@"注销成功"];
    }];
}
- (NSString *)token {
    return [PywPlatformMain sharedPlatformMain].token.length > 0 ? [PywPlatformMain sharedPlatformMain].token : [PywPlatformMain sharedPlatformMain].passport_Token;
}

- (NSString *)uid{
    return [PywPlatformMain sharedPlatformMain].uid;
}

- (PywInitApi *)mloginInitApi
{
    return objc_getAssociatedObject(self, &KeyInitApi);
}

- (void)setMloginInitApi:(PywInitApi *)mloginInitApi
{
    objc_setAssociatedObject(self, &KeyInitApi, mloginInitApi, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}


@end
